This invention relates to conducting traces of events in a computer system attachment network, and more particularly, to traces conducted involving events at a plurality of intelligent interface adapters.
Tracing of events, or the determination of the state of interfaces or devices during an event, such as sending or receiving data, can be helpful in determining the cause of an error in the communication process. The typical tracing apparatus deals with a single device and traces an event or a series of events with respect to that device. For example, U.S. Pat. No. 5,379,427, Hiroshima, describes a task tracing apparatus for a single multitasking operating system, which stores causes and addresses of interruptions, and stores system call numbers and addresses of system calls issued by an ongoing task. Co-assigned U.S. Pat. No. 5,355,487, Keller, et al., describes a single non-invasive trace facility which profiles a single operating system, employing a timer interrupt to capture addresses of routines and correlates them back to specific instructions and to specific lines of source code to determine the amount of time that the processor spent on various activities.
In an environment of a plurality of communication paths connecting one or more hosts separately to different devices or external communication paths, a problem on one communication path may cause an erroneous message to be sent on another communication path which in turn can cause problems at the connected devices. Further, bottlenecks may occur in the use of the plurality of communication paths such that the efficiency of the communications may be improved. With the standard tracing tools, such as discussed above, a trace device is connected at one communication path, and then moved to another communication path and the event duplicated. Thus, when a problem occurs or a possible bottleneck is analyzed, many different, asynchronous traces must be analyzed separately. As the result, great deal of time is spent attempting to determine the sequence of the events at the various communication paths. It requires that the system debugger understand many aspects of the system and be able to analyze and determine the state of the network at the time that the problem was discovered by looking into the traces of all the individual communication paths.
An object of the present invention is to provide a trace facility for monitoring an entire computer system attachment network.
Disclosed is a trace facility which is in place on a continuing basis for a computer system attachment network, a method for operating the trace facility, and the trace tools in the network. The network has a plurality of communication paths on which information is communicated as events, the trace facility providing a system wide trace in response to a xe2x80x9ctrace runxe2x80x9d command at desired trace tools followed by a xe2x80x9ctrace stopxe2x80x9d command. The trace facility comprises a trace tool at each communication path at which events are to be traced. Information communicated on the communication path as events has addressing information in a header, and each trace tool has an address filter coupled to the associated communication path for detecting the addressing information. The address filter selects information from the communication path for each event having at least one selected address. The selected event information is stored in a trace buffer as a series of trace entries. A time sequenced collection of trace entries is a trace. A breakpoint connection is provided at each of the trace tools, interconnecting each of the trace tools. A trace tool control at each trace tool responds to xe2x80x9ctrace runxe2x80x9d and xe2x80x9ctrace stopxe2x80x9d commands. After being placed in a xe2x80x9ctrace runningxe2x80x9d state by a command, and tracing a series of events, a trace stop command may be provided to one of the trace tools, and the addressed trace tool stops the trace at its address filter and trace buffer, and issues a breakpoint signal on the breakpoint connection to all the interconnected trace tools. In one embodiment of the invention, the issuance and/or receipt of the breakpoint is also selectable. The trace tool control of each of the interconnected trace tools responds to the provided breakpoint signal to stop the trace at the address filter and the trace buffer thereat, so that the traces are saved in the trace buffer at each trace tool.
In another aspect of the present invention, the trace buffer of each trace tool comprises a memory which is programmable by the trace tool control into one or more wrapping trace buffers of variable length, and wherein the trace tool address filter stores the selected event information as a trace entry in an associated programmed wrapping trace buffer, so that newer selected event information overwrites the oldest selected event information. Additionally the address filter selects the maximum extent of the selected event information for each event. In one embodiment, the extent may be controlled by the size of a data count field.
In still another aspect of the present invention, subsequent to a trace stop command, a trace data request is provided addressing at least one of the trace tools. The addressed trace tool makes the trace information from each trace buffer available to the communication path.
In a further aspect of the present invention, each trace tool of the trace facility additionally comprises an elapse clock. Each trace is time stamped with the elapse clock timing, in one embodiment, from the previous trace, and the time stamp is stored in the trace buffer. Additionally, the trace tool control responds to a trace stop command and to a received breakpoint signal to mark a time stamp for the received trace stop command/breakpoint signal. Thus, the timing of each of the traces is determinable from the sequence of the time stamps.
In a still further aspect of the invention, wherein the computer system attachment network comprises a plurality of communication paths with a plurality of host computers, with at least one associated communication path of each host connected to a trace tool. After being placed in a xe2x80x9ctrace runningxe2x80x9d state by a command, a trace stop command may be provided to one of the trace tools, and the addressed trace tool stops the trace at its address filter and trace buffer, and provides a breakpoint signal on the breakpoint connection to all the interconnected trace tools, including those coupled to other hosts.
For a fuller understanding of the present invention, reference should be made to the following detailed description taken in conjunction with the accompanying drawings.